package cn.com.qiter.staservice.schedule;

import cn.com.qiter.staservice.service.StatisticsDailyService;
import cn.com.qiter.staservice.service.StatisticsUserdailyService;
import cn.com.qiter.staservice.service.StatisticsWorkdailyService;
import cn.com.qiter.staservice.utils.DateUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.Date;

@Component
public class ScheduledTask {

    @Autowired
    private StatisticsWorkdailyService statisticsWorkdailyService;

    @Autowired
    private StatisticsUserdailyService statisticsUserdailyService;

    @Autowired
    private StatisticsDailyService staService;

    //     0/5 * * * * ?表示每隔5秒执行一次这个方法
    @Scheduled(cron = "0 0 1 * * ?")
    public void task1() {
        System.out.println("**************task1执行了..");
        statisticsWorkdailyService.workCount(DateUtil.formatDate(DateUtil.addDays(new Date(), -1)));
    }
    //     0/5 * * * * ?表示每隔5秒执行一次这个方法
    @Scheduled(cron = "0 0 1 * * ?")
    public void task3() {
        System.out.println("**************task1执行了..");
        statisticsWorkdailyService.trafficCount(DateUtil.formatDate(DateUtil.addDays(new Date(), -1)));
    }

    //     0/5 * * * * ?表示每隔5秒执行一次这个方法
    @Scheduled(cron = "0 0 1 * * ?")
    public void task4() {
        System.out.println("**************task1执行了..");
        statisticsWorkdailyService.trapCount(DateUtil.formatDate(DateUtil.addDays(new Date(), -1)));
    }

    //     0/5 * * * * ?表示每隔5秒执行一次这个方法
    @Scheduled(cron = "0 0 1 * * ?")
    public void task5() {
        System.out.println("**************task1执行了..");
        statisticsWorkdailyService.otherCount(DateUtil.formatDate(DateUtil.addDays(new Date(), -1)));
    }

    //     0/5 * * * * ?表示每隔5秒执行一次这个方法
    @Scheduled(cron = "0 0 1 * * ?")
    public void task6() {
        System.out.println("**************task1执行了..");
        statisticsWorkdailyService.videoCount(DateUtil.formatDate(DateUtil.addDays(new Date(), -1)));
    }
    //在每天凌晨1点，把前一天数据进行数据查询添加
    @Scheduled(cron = "0 0 1 * * ?")
    public void task2() {
        staService.registerCount(DateUtil.formatDate(DateUtil.addDays(new Date(), -1)));
    }
    //在每天凌晨1点，把前一天数据进行数据查询添加
    @Scheduled(cron = "0 0/5 * * * ?")
    public void taskCountPestsAndTrap() {
        Integer count = statisticsWorkdailyService.countPestsAndTrap();
    }



    //表示每隔5秒执行一次这个方法 0 0/5 * * * ?
    @Scheduled(cron = "0 0 1 * * ?")
    public void userTrapCount() {
        statisticsUserdailyService.countTrap(DateUtil.formatDate(DateUtil.addDays(new Date(), -1)));
    }


    //表示每隔5秒执行一次这个方法
    @Scheduled(cron = "0 0 1 * * ?")
    public void userPestsCount() {
        statisticsUserdailyService.countPests(DateUtil.formatDate(DateUtil.addDays(new Date(), -1)));
    }

    //表示每隔5秒执行一次这个方法
    @Scheduled(cron = "0 0 1 * * ?")
    public void userOtherCount() {
        statisticsUserdailyService.countOther(DateUtil.formatDate(DateUtil.addDays(new Date(), -1)));
    }

    //表示每隔5秒执行一次这个方法
    @Scheduled(cron = "0 0 1 * * ?")
    public void userVideoCount() {
        statisticsUserdailyService.countVideo(DateUtil.formatDate(DateUtil.addDays(new Date(), -1)));
    }
}
